﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using QLLopHoc.DoiTuongDuLieu;
using QLLopHoc.KetNoiDatabase;
using QLLopHoc.XuLyDuLieu;
using System.Data;

namespace QLLopHoc.XuLyDuLieu
{
    public class XLGiangVien
    {
        //phuong thuc lay giang vien tu ma giang vien
        public static DTGiangVien LayGVTuMS(string msgv)
        {
            return KNGiangVien.LayGVTuMS(msgv);
        }
        //Phương thức lấy danh sách giảng viên 
        public static List<DTGiangVien> LayDSGiangVien()
        {
            return KNGiangVien.LayDSGV();
        }
        //phương thức phát sinh mã giảng viên 
        public static string GenerateMSGV()
        {
            return KNGiangVien.GenerateMSGV();
        }

        //phương thức phát sinh mã giảng viên từ DataTable 
        public static string GenerateMSGV(DataTable dt)
        {
            int sl = dt.Rows.Count + 1;
            //định dạng cho ms thành 'GVxxx' 
            string ms = String.Format("GV{0:000}", sl);
            string tempMS = "";
            string strSelect = "MSGV='" + ms + "'";
            while (dt.Select(strSelect).Length > 0)
            {
                sl++;
                tempMS = ms;
                ms = String.Format("GV{0:000}", sl);
                strSelect = strSelect.Replace(tempMS, ms);
            }
            return ms;
        }
        //phương thức lấy bảng giảng viên 
        public static DataTable LayBangGV()
        {
            return KNGiangVien.LayBangGV();
        }

        //phương thức cập nhật bảng giảng viên 
        public static bool UpdateTableGV(DataTable dt)
        {
            return KNGiangVien.UpdateTableGV(dt);
        }
        //phương thức kiểm tra email nhập vào 
        public static bool KiemTraEmail(string em)
        {
            bool kq = true;
            string[] arrStr = em.Split(new char[] { '@' });
            if (arrStr.Length != 2)
            {
                return false;
            }
            string chuoi1 = arrStr[0];
            string chuoi2 = arrStr[1];
            if (chuoi1 == "" || chuoi2 == "") 
                return false;
            foreach (char each in chuoi1.ToCharArray())
                if (!char.IsLetterOrDigit(each))
                    return false;

            string[] arr = chuoi2.Split(new char[] { '.' });
            if (arr.Length < 2)
                return false;
            foreach (string e1 in arr)
            {
                if (e1 == "")
                    return false;
                foreach (char e2 in e1.ToCharArray())
                    if (!char.IsLetterOrDigit(e2))
                        return false;
            }
            return kq;
            }
        //phương thức phát sinh mã sinh viên 
        public static string GenerateMSSV()
        {
            return KNSinhVien.GenerateMSSV();
        }

        //phương thức phát sinh mã sinh viên từ DataTable 
        public static string GenerateMSSV(DataTable dt)
        {
            int sl = dt.Rows.Count + 1;
            //định dạng cho ms thành '0867xxx' 
            string ms = String.Format("0867{0:000}", sl);
            string tempMS = "";
            string strSelect = "MSSV='" + ms + "'";
            while (dt.Select(strSelect).Length > 0)
            {
                sl++;
                tempMS = ms;
                ms = String.Format("0867{0:000}", sl);
                strSelect = strSelect.Replace(tempMS, ms);
            }
            return ms;
        }

        //phương thức lấy bảng sinh viên 
        public static DataTable LayBangSV()
        {
            return KNSinhVien.LayBangSV();
        }

        //phương thức cập nhật bảng sinh viên 
        public static bool UpdateTableSV(DataTable dt)
        {
            return KNSinhVien.UpdateTableSV(dt);
        }

        //phương thức kiểm tra điện thoại nhập vào 
        public static string KiemTraTel(string tel)
        {
            string kq = "";
            if (tel.Length < 10)
            {
                kq += "Số chữ số quá ít!" + Environment.NewLine;
            }
            else
            {
                foreach (char each in tel.ToCharArray())
                    if (!char.IsDigit(each))
                    {
                        kq += "Ký tự chưa hợp lệ!" + Environment.NewLine;
                        break;
                    }
            }
            return kq;
            }
        //phương thức kiểm tra email nhập vào 
        public static bool KiemTraEmail(string em) 
        { 
            bool kq = true; 
            string[] arrStr = em.Split(new char[] { '@' });
            if (arrStr.Length != 2)
            {
                return false;
            }
            string chuoi1 = arrStr[0];
            string chuoi2 = arrStr[1];
            if (chuoi1 == "" || chuoi2 == "")
                return false;
            foreach (char each in chuoi1.ToCharArray())
                if (!char.IsLetterOrDigit(each))
                    return false;

            string[] arr = chuoi2.Split(new char[] { '.' });
            if (arr.Length < 2)
                return false;
            foreach (string e1 in arr)
            {
                if (e1 == "")
                    return false;
                foreach (char e2 in e1.ToCharArray())
                    if (!char.IsLetterOrDigit(e2))
                        return false;
            }
            return kq;
         }
        
    }
}
